curl_multi_info_read
获取当前解析的cURL的相关传输信息
适用PHP版本:PHP 4及以上版本。
函数说明:
curl_multi_info_read() 是一个用于获取通过 curl_multi_exec() 执行的多个 cURL 请求的执行结果信息的函数。当使用 curl_multi_exec() 处理多个并行 cURL 请求时,该函数可以用来读取每个请求的执行状态,帮助你获取请求的结果或错误信息。
函数语法:
array curl_multi_info_read ( resource $multi_handle [, int &$msgs_in_queue ] )
参数:
返回值:
返回一个关联数组,包含以下信息:
示例:
下面的示例展示了如何使用 curl_multi_info_read() 函数在执行多个并行请求时读取它们的状态信息。
<?php // 初始化多个 cURL 会话 $mh = curl_multi_init(); // 创建两个 cURL 请求 $ch1 = curl_init('https://www.example.com'); $ch2 = curl_init('https://www.example.org'); // 设置选项 curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); // 将请求加入多重句柄 curl_multi_add_handle($mh, $ch1); curl_multi_add_handle($mh, $ch2); // 执行多重请求 do { $mrc = curl_multi_exec($mh, $active); } while ($active); // 获取并处理每个请求的执行信息 while ($info = curl_multi_info_read($mh)) { if ($info['result'] === CURLE_OK) { echo "请求成功: " . $info['handle'] . "\n"; } else { echo "请求失败: " . curl_error($info['handle']) . "\n"; } } // 关闭 cURL 会话 curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh); ?>
示例代码的说明:
1. 首先初始化一个 cURL 多重句柄($mh),然后创建两个单独的 cURL 会话($ch1 和 $ch2)。
2. 使用 curl_setopt() 配置这两个请求,设置它们返回结果为字符串(CURLOPT_RETURNTRANSFER)。
3. 将两个 cURL 请求添加到多重句柄中,通过 curl_multi_add_handle() 完成。
4. 使用 curl_multi_exec() 执行多个请求,在执行过程中不断检查是否所有请求都已完成。
5. 通过 curl_multi_info_read() 获取每个请求的状态信息,并根据结果执行不同的操作(例如,打印成功或失败信息)。
6. 最后,移除和关闭 cURL 句柄,释放资源。